ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース7.0
E05172-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

Oracleエラーの解釈および管理

TimesTenからのSQL問合せの結果Oracleで発生するエラーは、Oracle Call Interface(OCI)を通じてOracleによってレポートされます。通常、OCIのエラーおよび警告は、TimesTenでは5107エラーとして次の形式でレポートされます。

5107: Oracle(OCI) Oracle_ErrorID in OCI_Call: Oracle Error Message

ここで、Oracle_ErrorIDはOracleエラー・メッセージのID、OCI_Callはエラーが発生したOCIルーチン、Oracle Error MessageはOracleによって生成されたエラー関する記述です。

例3.24

ORA-01466などのOracleデータベース・サーバーのメッセージは、次のようにレポートされる場合があります。

5107: Oracle(OCI) error in OCIStmtExecute():

ORA-01466: データを読み込めません - 表定義が変更されました

The command failed.

PLS-00201などのOracle PL/SQLメッセージは、次のようにレポートされる場合があります。

5107: Oracle(OCI) error in OCIStmtExecute():

ORA-06550: 行 1、列 18

PLS-00201: 識別子DBMS_FLASHBACKを宣言してください。

ORA-06550: 行 1、列 7

PL/SQL: Statement ignored rc = -1

詳細は、『Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド』のCache Connect to Oracleのトラブルシューティングに関する説明を参照してください。

AWTキャッシュ・グループ使用時のエラーの検出

AWTキャッシュ・グループを使用している場合、Oracleデータベースで発生したエラーおよび警告はアプリケーションに通知されません。かわりに、変更をOracleに適用している間に発生したすべての挿入、更新およびエラー削除は、データ・ストア・ディレクトリにあるエラー・ファイルに次の名前で保存されます。

DatastoreName.awterr

awterrファイルのエラー・メッセージの書式は、レプリケーションでの競合およびトランザクション・エラーに対して生成されるエラー・メッセージとほぼ同じです(例3.25を参照)。


注意: Oracleによって生成されたエラーおよび警告は、TimesTenでコミットが行われた後に、awterrエラー・ファイルでレポートされる場合があります。

例3.25

キャッシュ・グループに対して行われた更新がOracleに伝播されるときに制約違反が発生した場合、awterrファイル内のエラーは次のようになります。

Error occurred 14:48:55 on 03-22-2004

Datastore: c:\temp\cgDSN

Oracle Id: system1

Transmitting name: cgDSN

Error message:

TT5210: Oracle unique constraint violation error in OCIStmtExecute(): ORA-00001: unique constraint (GUSER.SYS_C00357240) violated rc = -1 -- file "bdbTblH.c", lineno 1205, procedure "ttBDbStmtForce()"

TT5025: Commit failure in Oracle. Transaction must be rolled back in TimesTen. -- file "bdbConnect.c", lineno 885, procedure "ttBDbXact()"

Operation that caused the error:

Insert into table TESTUSER.T1 <9,1000>

Failed transaction:

Insert into table TESTUSER.T1 <9, 1000>

End of failed transaction

例3.26

TimesTenによってOracleに配置されたオブジェクトが削除された場合、awterrファイル内のエラーは次のようになります。

May 04 18:12:36 HOST1 TimesTen Replication 6.0[2136]:

[Err ] DEFAULT:meta.c(639):

TT16062: Failed to compile command:

select p.commit_timestamp, p.commit_seqnum, p.protocol from owner1.TT_02_REPPEERS p where p.replication_name = :rname and p.replication_owner = :rowner and p.tt_store_id = :oid and p.subscriber_id = :sid

May 04 18:12:36 HOST1 TimesTen Replication 6.0[2136]:

[Err ] DEFAULT:meta.c(639):

TT5221: TT5221: Oracle syntax error in OCIStmtExecute():

ORA-00942: 表またはビューが存在しません。rc = -1 -- file "bdbStmt.c", lineno 1041, procedure "getOraOutTypesNLengths()"

この例では、TT_02_REPPEERS表は存在しません。このエラーをリカバリするには、次の手順を実行します。

  1. レプリケーション・エージェントを停止します。
  2. (オプション)キャッシュ・グループの現在のイメージを使用して、Oracleをキャッシュ・グループと再度同期化します。
  3. キャッシュ・グループを削除し、再作成します。
  4. レプリケーション・エージェントを再起動します。